home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Programming / AllPlaton / LOM / LOMTitle.AMOS / LOMTitle.amosSourceCode
Encoding:
AMOS Source Code  |  1995-11-04  |  7.0 KB  |  262 lines

  1. ' *************************************
  2. ' *                                   *
  3. ' *      Land Of Magic Title V0.9     *
  4. ' *Story and Design by Marco Eberhardt*
  5. ' *      Written by Chris Hodges      *
  6. ' *     Graphics by Riccard Linde     *
  7. ' *Additional Gfx by Fredrik Johansson*
  8. ' *     Music by Fredrik Johansson    *
  9. ' *                                   *
  10. ' *************************************
  11. '
  12. Hide 
  13. TITLE
  14. Procedure TITLE
  15.   Gosub LOMINTRO
  16.   Gosub IMMORTALINTRO
  17.   Gosub CREDITSSCROLLER
  18.   For A=64 To 0 Step -1 : Extension_8_10C6 A : Wait Vbl : Next 
  19.    Extension_8_10A8 
  20.   Erase All 
  21. Pop Proc
  22. LOMINTRO:
  23.   Screen Open 2,320,512,2,0 : Screen Hide 
  24.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
  25.   LOAFIL["Graphics/garnet.font",-11]
  26.    Extension_8_1204 11
  27. '  Change Font "Garnet",16 
  28.   Screen Open 1,320,256,16,0 : Screen Hide 
  29.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
  30.   Screen Display 1,128,40,320,256
  31.   LOAFIL["Music/mod.lom-intro",-3]
  32.   LOAFIL["Misc/TitleText.dat",9]
  33.    Extension_8_10F2 125
  34.    Extension_8_10C6 64
  35.    Extension_8_108E 3
  36.   POS=Start(9)
  37.   PIC=1
  38.   Do 
  39.     LOAFIL["Graphics/Intro"+ Extension_8_0EB8(PIC,2)+".pic",10]
  40.     Unpack 10 To 0 : Screen Hide 
  41. '    Load Iff "Graphics/Intro"+Lzstr$(PIC,2)+".iff",0
  42. '    Spack 0 To 10 
  43. '    Save "Graphics/Intro"+Lzstr$(PIC,2)+".pic",10 
  44.     SC1=Screen Base
  45.     Screen Display 0,128,40,320,256
  46.     Screen 1 : Get Palette 0
  47.     Screen 0 : For A=0 To 31 : Colour A,0 : Next 
  48.     Screen Show 
  49.     Fade 3 To 1 : Timer=0 : Wait 49
  50.     Screen 1
  51.     TURBOCONVGREY[SC1,Screen Base,256*320/8]
  52.     Repeat 
  53.       Multi Wait 
  54.       I$=Inkey$
  55.       Exit If Mouse Key or Fire(1) or(I$<>"")
  56.     Until Timer>250
  57.     If I$=Chr$(27)
  58.       Screen 0
  59.       Fade 1 : Wait 16 : Exit 
  60.     End If 
  61.     For A=0 To 31
  62.       C=Colour(A)
  63.       Colour A,(( Extension_8_03B2(C)+ Extension_8_03C0(C)+ Extension_8_03D0(C)+1)/3)*$111
  64.     Next 
  65.     Screen 0
  66.     Fade 2 To 1 : Wait 33
  67.     Screen 1
  68.     For A=0 To 15 : Colour A,A*$111 : Next 
  69.     Wait Vbl 
  70.     Screen To Front 1 : Screen Show 1
  71.     Wait Vbl : Wait Vbl 
  72.     Screen 0 : Extension_8_121C 0,4
  73.     Screen Copy 1 To 0
  74.     Get Palette 1
  75.     For A=0 To 15 : Colour A+16,A*$111 : Next 
  76.     Screen To Front 0 : Screen Hide 1
  77.     Wait 4
  78.     Screen 1
  79.     For A=0 To 15 : Colour A+16,$FFF-(A*$100+$10*(A/2)) : Next 
  80.     Repeat 
  81.       Screen 2
  82.       Cls 0,0,256 To 320,512
  83.       Y=256+8 : LP=POS : LS=POS
  84.       Do 
  85.         P=Peek(POS) : Inc POS
  86.         Exit If P=35 or P=64
  87.         If P=32 or P=10 Then LS=POS-1
  88.         T$=Peek$(LP,POS-LP) : TL=Text Length(T$)
  89.         If P=10 or TL>300
  90.           T$=Peek$(LP,LS-LP) : TL=Text Length(T$)
  91.           Ink 1,0 : Text 160-TL/2,Y+Text Base,T$
  92.           Add Y,16
  93.           LP=LS+1
  94.         End If 
  95. '        If Y>503 and Peek(LP)<>10 Then POS=LP : P=42
  96.         Exit If P=42
  97.       Loop 
  98.       If P<>42 Then Inc POS
  99.       LB=Logbase(0)
  100.       Screen 0 : Fade 8 To 1
  101.       OB=Logbase(4)
  102.       Break Off 
  103.       For A=0 To 256
  104.         Loke Screen Base+4*4+6*4,LB+A*40 : View : Wait Vbl 
  105.       Next 
  106.       Wait 1
  107.       Screen Copy 2,0,256,320,512 To 2,0,0
  108.        Extension_8_128A 0
  109.       Loke Screen Base+4*4+6*4,OB
  110.        Extension_8_12B2 2,0 To 0,4
  111.       Wait Vbl : View : Wait Vbl : Break On 
  112.       Screen 0
  113.       For A=0 To 900
  114.         Multi Wait 
  115.         I$=Inkey$
  116.         Exit If Mouse Key or Fire(1) or(I$<>"")
  117.       Next 
  118.       If I$=Chr$(27)
  119.         Screen 0
  120.         Fade 1 : Wait 16 : Exit 2
  121.       End If 
  122.     Until P<>42
  123.     Screen 2 : Cls 
  124.     Screen 1
  125.     For A=0 To 15 : Colour A+16,A*$111 : Next 
  126.     Screen 0
  127.     Fade 1 To 1 : Wait 16
  128.     Fade 2 : Wait 32
  129.     Exit If P=64
  130.     Inc PIC
  131.   Loop 
  132.   Screen Close 0
  133.   Screen Close 1
  134.   Screen Close 2
  135.   Erase 9
  136.   Erase 10
  137.   Erase 11
  138. Return 
  139. IMMORTALINTRO:
  140.   LOAFIL["Graphics/LandOfMagic.pic",4]
  141.   Auto View Off : Unpack 4 To 7 : Screen Hide 
  142.   Erase 4
  143.   View : Auto View On 
  144.   LOAFIL["Graphics/ImmortalDesigns.pic",4]
  145.   Auto View Off 
  146.   Unpack 4 To 0 : Screen Hide 
  147.   Erase 4
  148.   Screen 7 : Get Palette 0 : Screen 0
  149.   For A=0 To 15 : Colour A,$FFF : Next : Colour Back $FFF
  150.   Screen Display 0,128,40,320,512
  151.   Auto View On 
  152.   Wait Vbl 
  153.   Screen Show 
  154.   Fade 3 To 7
  155.   Timer=0
  156.   LOAFIL["Graphics/Presents.pic",4]
  157.   Repeat : Multi Wait : Until Timer>100
  158.   Screen 7 : For A=0 To 15 : Colour A,$FFF : Next : Screen 0
  159.   Fade 1 To 7 : Wait 16
  160.   Auto View Off 
  161.   Unpack 4 To 0
  162.   Erase 4
  163.   Screen 7 : Get Palette 0 : Screen 0
  164.   For A=0 To 15 : Colour A,$FFF : Next 
  165.   Wait Vbl : View 
  166.   Auto View On 
  167.   Fade 1 To 7 : Wait 50
  168.   For Y=0 To 512 Step 4
  169.     For X=0 To 39
  170.       If Y-X*8=>0 and Y-X*8<256 Then Screen Copy 7,X*16,Y-X*8,X*16+16,Y-X*8+4 To 0,X*16,Y-X*8+176
  171.     Next 
  172.     Wait Vbl 
  173.   Next 
  174.   Wait 100
  175.   Fade 4
  176.   Repeat : C=Colour(0) : Colour Back C : View : Wait Vbl : Until C=0
  177.   Screen Close 0
  178.   Screen Close 7
  179. Return 
  180. CREDITSSCROLLER:
  181.   LOAFIL["Graphics/HiresFont.pic",5]
  182.   Unpack 5 To 0 : Screen Hide 
  183.   Erase 5
  184.   For A=0 To 58
  185.     Get Block A+1,(A mod 20)*32,(A/20)*40,32,40
  186.   Next 
  187.    Extension_8_1486 0,0
  188.   Screen Close 0
  189.   Screen Open 0,704,688,4,$8000
  190.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
  191.   Screen Display 0,104,40-Ntsc*10,352,256-Ntsc*56
  192.    Extension_8_149E 0,0 : View 
  193.   Screen Show 0
  194.   YPOS=0
  195.   Screen Offset 0,0,YPOS+32
  196.   T$="LAND OF MAGIC$############&$THE RESURRECTION$$$"
  197.   T$=T$+"A GAME BY$%%%%%%%%%%%%%%%+$-IMMORTAL DESIGNS-$###############&$$$"
  198.   T$=T$+"SUPERVISOR$#########&$MARCO EBERHARDT$$$"
  199.   T$=T$+"PROGRAMMING$##########&$CHRIS HODGES$$$"
  200.   T$=T$+"STORYBOARD$#########&$MARCO EBERHARDT$$$"
  201.   T$=T$+"MAIN GRAPHICS$############&$RICCARD LINDE$$$"
  202.   T$=T$+"UNDERGROUND GFX$##############&$FREDRIK JOHANSSON$$$"
  203.   T$=T$+"MUSIC AND SOUND$##############&$FREDRIK JOHANSSON$$$"
  204.   T$=T$+"ORIGINAL PROGRAMMING$###################&$MARCO EBERHARDT$PER JONSSON$CHRISTIAN ANDERSSON$$$"
  205. '  T$=T$+"MORAL SUPPORT$############&$MARCO EBERHARDT$$$"
  206.   T$=T$+"GAME TESTERS$###########&$...$$$"
  207.   T$=T$+"EXECUTIVE PRODUCER$#################&$IMMORTAL DESIGNS$$$"
  208.   T$=T$+"$$$$$$$$$$$$"
  209.   BP=1 : QUIT=0
  210.   Repeat 
  211.     Add YPOS,1,0 To 319
  212.     Screen Offset 0,0,YPOS+32
  213.     Gosub PULET
  214.     Wait Vbl 
  215.     If(Mouse Key<>0) and QUIT=0 Then Inc QUIT : Fade 2
  216.     If QUIT Then Inc QUIT
  217.   Until QUIT=32
  218.   Screen Close 0
  219. Return 
  220. PULET:
  221.   YM=YPOS mod 40
  222.   YP=YPOS-YM
  223.   If YM=0 Then LP=0
  224.   If LP=0
  225.     XP=192*2
  226.     For A=BP To Len(T$)
  227.       Exit If Mid$(T$,A,1)="$"
  228.       Add XP,-16
  229.     Next 
  230.     Inc LP : Return 
  231.   End If 
  232.   If LP=1
  233.     Ink 0 : Bar 0,YP To 703,YP+39
  234.     Inc LP : Return 
  235.   End If 
  236.   If LP=2
  237.     Ink 0 : Bar 0,YP+320 To 703,YP+359
  238.     Inc LP : Return 
  239.   End If 
  240.   If LP=3
  241.     A$=Mid$(T$,BP,1)
  242.     P=Asc(Mid$(T$,BP,1))
  243.     Add BP,1,1 To Len(T$)
  244.     If P=36
  245.       LP=-1
  246.     Else 
  247.       Put Block P-31,XP,YP
  248.       Put Block P-31,XP,YP+320
  249.       Add XP,32
  250.     End If 
  251.   End If 
  252. Return 
  253. End Proc
  254. Procedure LOAFIL[F$,BANK]
  255.   If Exist(F$)=0 Then Print "Serious Error! File "+F$+"Not found!" : Stop 
  256.   If BANK>0 Then Trap Load F$,BANK
  257.   If Errtrap or BANK<0 Then Extension_8_0EA2 F$,BANK
  258.    Extension_8_008A Abs(BANK)
  259. End Proc
  260. Procedure TURBOCONVGREY[SC1,SC2,BYTES]
  261.    ' COMPILED PROCEDURE -- can't convert this to AMOS code
  262. End Proc